﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface ICustomsService
    {
        [ServiceKnownType(typeof(ImportDeclarationsInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail))]
        string DeleteDeclarationsInfo(List<string> DeclarationsID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ExportDeclarationsInfo))]
        string DeleteEXDeclarationsInfo(List<string> DeclarationsID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeclarationsBlanaceRptQueryEntity)), FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetDeclarationsBlanaceRptDataSet(DeclarationsBlanaceRptQueryEntity declarationsBlanaceRptQueryEntity, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ImportDeclarationsInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        ImportDeclarationsInfo GetDeclarationsInfoByID(string DeclarationsID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ImportDeclarationsQueryEntity))]
        DataSet GetDeclarationsInfoByQueryEntity(ImportDeclarationsQueryEntity importDeclarationsQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(DeclarationsInOutDetailRptQueryEntity))]
        DataSet GetDeclarationsInOutDetailRptDataSet(DeclarationsInOutDetailRptQueryEntity declarationsInOutDetailRptQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(DeclarationsItemNoBlanaceRptQueryEntity))]
        DataSet GetDeclarationsItemNoBlanaceRptDataSet(DeclarationsItemNoBlanaceRptQueryEntity declarationsItemNoBlanaceRptQueryEntity, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ExportDeclarationsInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        ExportDeclarationsInfo GetEXDeclarationsInfoByID(string DeclarationsID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ExportDeclarationsQueryEntity)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetEXDeclarationsInfoByQueryEntity(ExportDeclarationsQueryEntity exportDeclarationsQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ExportDeclarationsRptQueryEntity))]
        DataSet GetExportDeclarationsRptDateSet(ExportDeclarationsRptQueryEntity exportDeclarationsRptQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ImportDeclarationsRptQueryEntity))]
        DataSet GetImportDeclarationsRptDateSet(ImportDeclarationsRptQueryEntity importDeclarationsRptQueryEntity, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ImportDeclarationsInfo))]
        string InsertDeclarationsInfo(ImportDeclarationsInfo importDeclarationsInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ExportDeclarationsInfo)), OperationContract]
        string InsertEXDeclarationsInfo(ExportDeclarationsInfo exportDeclarationsInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(ExportDeclarationsInfo)), ServiceKnownType(typeof(PubParasInfo))]
        ExportDeclarationsInfo OrderIDChanged(string orderID, string type, string ownerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ImportDeclarationsInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        ImportDeclarationsInfo ReceiptIDChanged(string recepitID, string type, string ownerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ImportDeclarationsInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateDeclarationsInfo(ImportDeclarationsInfo importDeclarationsInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string UpdateDeclarationsInfoData(ImportDeclarationsInfo importDeclarationsInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ReceiptInfo)), OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ImportDeclarationsInfo))]
        string UpdateDeclarationsStatus(string declarationsID, string status, string verificationFormID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ExportDeclarationsInfo)), FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string UpdateEXDeclarationsInfo(ExportDeclarationsInfo exportDeclarationsInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(ExportDeclarationsInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateEXDeclarationsInfoData(ExportDeclarationsInfo exportDeclarationsInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateEXDeclarationsStatus(string declarationsID, string status, string verificationFormID, PubParasInfo pubParasInfo);
    }
}

